﻿using AccesoDatos.Modulos.ClasesAccesoDatos;
using Modelado.Modulos.ClasesModelado;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Logica.Modulos.ClasesLogica
{
    public class LOG_ODBC : Negocio
    {
        public void CRE_ODBC(MOD_ODBC obj)
        {
            try
            {
                this.IniciarTransaccion();

                AD_ODBC objBD = new AD_ODBC();

                objBD.CRE_ODBC(this.comando, obj);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }

        public void DEL_ODBC(int codigo)
        {
            try
            {
                this.IniciarTransaccion();

                AD_ODBC objBD = new AD_ODBC();

                objBD.DEL_ODBC(this.comando, codigo);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }

        //Actualiza ODBC
        /// <summary>
        /// Ups the d_ ODBC.
        /// </summary>
        /// <param name="obj">The object.</param>
        public void UPD_ODBC(MOD_ODBC obj)
        {
            try
            {
                this.IniciarTransaccion();

                AD_ODBC objBD = new AD_ODBC();

                objBD.UPD_ODBC(this.comando, obj);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }

        }

        //consultar grid ODBC

        /// <summary>
        /// Ses the l_ grid_ ODBC.
        /// </summary>
        /// <returns>List{MOD_ODBC}.</returns>
        public List<MOD_ODBC> SEL_Grid_ODBC()
        {
            try
            {
                this.AbrirConexion();

                AD_ODBC objBD = new AD_ODBC();

                List<MOD_ODBC> lista = objBD.SEL_Grid_ODBC(this.comando);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        public List<MOD_ODBC> SEL_ODBC()
        {
            try
            {
                this.AbrirConexion();

                AD_ODBC objBD = new AD_ODBC();

                List<MOD_ODBC> lista = objBD.SEL_ODBC(this.comando);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        //Seleccionar ODBC by id
        /// <summary>
        /// Ses the l_ ODBC by identifier.
        /// </summary>
        /// <param name="PUE_CODODBC">The pu e_ cod ODBC.</param>
        /// <returns>MOD_ODBC.</returns>
        public MOD_ODBC SEL_ODBCByID(int PUE_CODODBC)
        {
            try
            {
                this.AbrirConexion();

                AD_ODBC objBD = new AD_ODBC();

                MOD_ODBC objODBC = objBD.SEL_ODBCByID(this.comando, PUE_CODODBC);

                this.CerrarConexion();

                return objODBC;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }

        }

        //Seleccionar ODBC by ODBC ,verifiaca que al crear un cliente no esté repetido
        /// <summary>
        /// Ses the l_ ODBC by ODBC.
        /// </summary>
        /// <param name="PUE_NOMBRE">The pu e_ nombre.</param>
        /// <returns>System.Int32.</returns>
        public int SEL_ODBCByODBC(string ODBC_NOMBRE)
        {
            try
            {
                this.AbrirConexion();

                AD_ODBC objBD = new AD_ODBC();

                int cant_cli = objBD.SEL_ODBCByNombre(this.comando, ODBC_NOMBRE);

                this.CerrarConexion();

                return cant_cli;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }

        }
    }
}
